package com.bitdf.txing.cart.controller;


import com.bitdf.txing.cart.feign.vo.Cart;
import com.bitdf.txing.cart.feign.vo.CartItem;
import com.bitdf.txing.cart.service.CartService;
import com.bitdf.txing.common.utils.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.concurrent.ExecutionException;


@RestController
@RequestMapping("${txing.request.path.cart}")
public class CartController {

    @Autowired
    CartService cartService;


    /**
     * 获取到当前用户整个购物车信息
     * @param
     * @return
     */
    @GetMapping("/list")
    public R getCart() throws ExecutionException, InterruptedException {
        Cart cart = cartService.getCart();
        return R.ok(cart);
    }

    /**
     * 添加商品到购物车
     * @param skuId
     * @param num
     * @return
     * @throws ExecutionException
     * @throws InterruptedException
     */
    @GetMapping("/add")
    public R addToCart(@RequestParam("skuId")Long skuId, @RequestParam("num") Integer num) throws ExecutionException, InterruptedException {

        CartItem cartItem = cartService.addToCart(skuId, num);
        return R.ok();
    }


//    @GetMapping("/checkItem")
//    public R checkItem(@RequestParam("skuId") Long skuId,@RequestParam("check") Integer check){
//        cartService.checkItem(skuId,check);
//        return R.ok();
//    }
//
//    @GetMapping("/countItem")
//    public R countItem(@RequestParam("skuId") Long skuId,@RequestParam("num")Integer num){
//        cartService.countItem(skuId,num);
//        return R.ok();
//    }
//
//    @GetMapping("/deleteItem")
//    public R deleteItem(@RequestParam("skuId") Long skuId){
//        cartService.deleteItem(skuId);
//        return R.ok();
//    }

    /**
     *     获取购物车当前选中购物项
     */

    @ResponseBody
    @GetMapping("/user/current/cartitems")
    public List<CartItem> getCurrentUserCartItems(){
        List<CartItem> userCartItems = cartService.getUserCartItems();
        return userCartItems;
    }


}
